// import webSocket from '@ohos.net.webSocket';
// import { BusinessError } from '@ohos.base';
// import { Logger } from "./src/main/websocket/utils/Logger"
// import Connection from '@xmpp/connection';
//
// export class ConnectionWebSocket extends Connection {
//   private ws: webSocket.WebSocket = webSocket.createWebSocket();
//   private service: string;
//   private username: string;
//   private password: string;
//   private reconnectInterval: number = 1000;
//   private reconnectAttempts: number = 3;
//   private _message: string = "";
//
//   public set message(value: string) {
//     this._message = value;
//   }
//
//   public get message(): string {
//     return this._message;
//   }
//   constructor(options: ServiceOptions) {
//     super();
//     this.service = options.service;
//   }
//
//   public start() {
//     this.ws.connect(this.service, (err: BusinessError, value: boolean) => {
//       if (!err) {
//         Logger.info("websocket-xmpp connecting....")
//       } else {
//         Logger.error("websocket-xmpp Unable to connect,the reason is " + JSON.stringify(err))
//       }
//     })
//
//     this.ws.on("open", () => {
//       Logger.info('websocket-xmpp WebSocket connected');
//     })
//     this.ws.on("close", () => {
//       Logger.info('websocket-xmpp WebSocket closed');
//     })
//
//
//     this.ws.on("error", () => {
//       Logger.error('websocket-xmpp WebSocket error');
//       this.reconnect()
//     })
//
//     this.ws.on('message', (err: BusinessError, value: string) => {
//       if (value === 'bye') {
//         this.stop()
//       }
//       Logger.info("websocket-xmpp WebSocket get service message is :" + JSON.stringify(value))
//       this.message=JSON.stringify(value)
//     });
//
//   }
//
//   public sendMessage(message:string){
//     this.ws.send(message, (err: BusinessError, value: boolean) => {
//       if (!err) {
//         Logger.info("websocket-xmpp Message sent successfully");
//       } else {
//         Logger.error("websocket-xmpp Failed to send the message. Err:" + JSON.stringify(err));
//       }
//     });
//   }
//
//   private reconnect() {
//     if (this.reconnectAttempts > 0) {
//       Logger.info(`websocket-xmpp Reconnecting in ${this.reconnectInterval} ms...`);
//       setTimeout(() => {
//         this.reconnectAttempts--;
//         this.start();
//       }, this.reconnectInterval);
//     } else {
//       Logger.error('websocket-xmpp Exceeded maximum reconnection attempts. Stopping reconnecting.');
//     }
//   }
//
//
//   public stop() {
//     this.ws.close((err: BusinessError, value: boolean) => {
//       if (!err) {
//         Logger.info("websocket-xmpp Connection closed successfully");
//       } else {
//         Logger.error("websocket-xmpp Failed to close the connection. Err: " + JSON.stringify(err));
//       }
//     });
//   }
// }
//
// export interface ServiceOptions {
//   service: string,
//   username?: string,
//   password?: string
// }